<template>
	<view>
		<!-- ... existing template code ... -->
		<div>{{ msg }}</div>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				plugin: requirePlugin('readcard-plugin'),
				idCardInfo: null,
				StatusCode: null,
				initSuccess: false,
				msg:''
			};
		},
		onLoad() {
			console.log(this.plugin, 9999)
			this.StatusCode = this.plugin.StatusCodeEnum();
			console.log("对照状态码：", this.StatusCode);

			// 设置APPID （开始读卡之前，必须设置）
			this.plugin.setAppId("6IAFXMX0CXVO", "EPUAW3ACSFKKVH9Y", "CXJYLHDPYFDFFCUU");

			// 设置读卡SDK参数
			this.readSetting();

			// 初始化读卡
			this.initRead();
		},

		methods: {
			// 设置读卡SDK参数
			readSetting() {
				// 日志保存目录
				this.plugin.setShowLog(wx.getFileSystemManager(), wx.env.USER_DATA_PATH);

				// 读卡参数设置，根据需要自行修改参数值，参数名称及类型不可修改。
				var _Setting = {
					decodeImageType: "dn1", // dn0: 无照片   dn1: 平台解码照片
					readCardType: 2, // 2：NFC  7：蓝牙外设读卡器  
					saveLog: true, // 是否保存日志文件。设置true时，必须调用以上的 plugin.setShowLog(); 设置日志保存的目录
					openLocalCache: true, // 是否开启本地缓存
					// 解码服务器配置。
					ipPortArray: [{
						address: 'yfs4.sfzydq.com',
						port: 9999,
						canUse: true
					}]
				};
				// 将参数设置给插件
				this.plugin.readSetting(_Setting);
			},

			// 初始化 读卡示例代码
			initRead() {
				if (this.initSuccess) {
					wx.showToast({
						title: '已经初始化过了',
						icon: 'none'
					});
					return;
				}
				// 初始化并开始读卡
				this.plugin.startReadCard((code, msg, value, cardType) => {
					let code_msg = "code：" + code + "\n" + "msg：" + msg;
					this.msg = code_msg;
					switch (code) {
						case this.StatusCode.ININ_ING.code: // 初始化中
							wx.showLoading({
								title: '初始化中...',
								mask: true
							});
							break;
						case this.StatusCode.ININ_OK.code: // 初始化成功
							this.initSuccess = true;
							wx.hideLoading();
							wx.showToast({
								title: '初始化成功',
								icon: 'success'
							});
							break;
						case this.StatusCode.ININ_FAILE.code: // 初始化失败
							this.initSuccess = false;
							wx.hideLoading();
							if (msg.indexOf("13000") != -1) {
								wx.showModal({
									title: '温馨提示',
									content: '设备不支持NFC',
									complete: (res) => {}
								});
							} else if (msg.indexOf("13001") != -1) {
								wx.showModal({
									title: '温馨提示',
									content: '系统NFC开关未打开',
									complete: (res) => {}
								});
							} else {
								wx.showToast({
									title: msg,
									icon: 'error'
								});
							}
							break;
						case this.StatusCode.FIND_CARD_START.code: // 开始寻卡
							wx.showToast({
								title: '开始寻卡',
								icon: 'success'
							});
							break;
						case this.StatusCode.FIND_CARD_SUCCESS.code: // 寻卡成功
							wx.showToast({
								title: '寻卡成功',
								icon: 'success'
							});
							break;
						case this.StatusCode.READCARD_START.code: // 开始解码
							wx.showLoading({
								title: '请勿移动卡片',
								mask: true
							});
							break;
						case this.StatusCode.READCARD_SUCCESS.code: // 解码成功
							wx.hideLoading();
							wx.showToast({
								title: '解码成功',
								icon: 'success'
							});
							switch (cardType) {
								case this.StatusCode.CARD_IDCARD.code: // 身份证
									var idCardInfo = JSON.parse(value);
									console.log("身份证信息：", idCardInfo);
									break;
									// ... handle other card types ...
							}
							break;
						case this.StatusCode.READCARD_FAILE.code: // 解码失败
							wx.hideLoading();
							wx.showToast({
								title: '解码失败' + msg,
								icon: 'error'
							});
							break;
					}
				}, this.bleDeviceId); // 连接指定蓝牙设备时，需传入第二个参数【指定蓝牙设备ID】，其余传 null 即可
			},

			onUnload() {
				console.log("onUnload", "界面销毁，需要停止读卡");
				this.plugin.stopReadCard();
			}
		}
	}
</script>

<style scoped>
	/* ... existing styles ... */
</style>